/**
 ***********************************************************************************************************
 * 
 ***********************************************************************************************************
 * @file RBD3D9VertexDeclaration.h
 ***********************************************************************************************************/

#ifndef __RBD3D9VERTEXDECLARATION_H__
#define __RBD3D9VERTEXDECLARATION_H__

#ifdef  HEADER_ONCE
#pragma HEADER_ONCE
#endif

#ifdef  HEADER_MSG
#pragma HEADER_MSG(RBD3D9VertexDeclaration.h)
#endif

/***********************************************************************************************************
 * Includes
 ***********************************************************************************************************/
#include <RBMain/RBVertexDeclaration.h>

/***********************************************************************************************************
 * Forward declarations
 ***********************************************************************************************************/

interface IDirect3DVertexDeclaration9;
class RBD3D9Renderer;

/***********************************************************************************************************
 * Classes
 ***********************************************************************************************************/

class RBD3D9VertexDeclaration : public RBVertexDeclaration
{
public:
				                    RBD3D9VertexDeclaration (RBHardwareBufferManager* pHBMgr, RBVertexElement* pElements, uint32 uiElementCount);
    virtual                        ~RBD3D9VertexDeclaration ();

    IDirect3DVertexDeclaration9*    GetD3DDecl              ();

private:
    IDirect3DVertexDeclaration9*    m_pD3DDecl;

};

/**************************************************************************************************************************************************************
 * 
 **************************************************************************************************************************************************************/
inline IDirect3DVertexDeclaration9* RBD3D9VertexDeclaration::GetD3DDecl()
{
    return m_pD3DDecl;
}

/***********************************************************************************************************/

#endif // __RBD3D9VERTEXDECLARATION_H__
